1. Field of the Invention
The invention relates generally to computer systems in which hardware device identification and system setup are performed automatically using a Programmable Option Select (POS) feature. An example of such a system is the commercially available IBM PS/2 Model 70, personal computing system (the terms IBM and IBM PS/2, are registered trademarks of International Business Machines Corporation), in which (1) software-writeable latches on each adapter card coupling a peripheral device to the system store card/device configuration information and (2) a unique "card type" POS ID value is hardwired onto each card to identify the type of card and associated peripheral device attached to the system. All cards of the same type have the same POS ID. The POS feature eliminates the need to use manual switches for device setup purposes.
More particularly, the invention relates to methods and apparatus for performing automatic hardware device identification and system setup in computer systems that include multi-card adapters (adapters with attached daughter card(s), sometimes also referred to herein as attached secondary card(s)), and/or multi-card planar complexes (system boards with pluggable processor complexes and/or I/O risers). In particular, methods and apparatus are set forth for uniquely identifying the aforementioned multi-card devices utilizing unique "combination type" POS IDs, where a combination type POS ID is a POS ID specifically preassigned to a combination of cards rather than to a single type of card for identifying the types of cards that make up the combination.
According to the invention, the unique combination type POS ID is partitioned across the combination of cards (for example, hardwired into each card). When the cards are combined, the partitioned ID is synthesized and becomes available to the system. The combination type ID may be used by the system to automatically identify and configure the multi-card device combination, perform diagnostics, etc., in the same manner that card type IDs are utilized to identify and configure individual feature cards in conventional systems supporting a POS type feature.
2. Description of the Related Art
Computer systems are well known in which hardware device identification and system setup are performed automatically. As indicated hereinabove, an example of such a computer system is the commercially available IBM PS/2 Model 70 which utilizes the aforementioned POS ID concept for hardware identification and system setup purposes. The POS ID concept is described in detail in copending U.S. patent application Ser. No. 07/296,387, filed on Jan. 6, 1989, now U.S. Pat. No. 5,038,320 Heath et al, hereby incorporated by reference.
Other systems utilizing IDs for device identification and system setup purposes include the systems described in U.S. Pat. Nos. 4,556,953 and 4,683,550 to Caprio et al and Jindrick et al, respectively. In Caprio et al, a data processing system is described that includes a set of interface circuit cards, each of which generate ID signals for configuration purposes. Each card has its own ID; however, no provision is made for altering a given card's ID or for otherwise generating a new ID to identify a particular combination of cards.
Jindrick et al, describes a modular plug-in instrumentation system that includes an instrumentation bus having a digital portion and a segmented analog portion. Each analog module attached to the bus includes an identification register that may have its inputs strapped to produce a desired ID code to identify the characteristics of a particular analog instrumentation module attached to the system. Again, no provision is made for altering a given modules ID or for otherwise generating a new ID to identify a particular combination of modules.
As indicated hereinabove, the IBM PS/2 Model 70, replaced physical device switches on the system board and feature cards with the software-writeable latches. In a system like the Model 70, feature cards are identified by a unique card type ID number that the system reads and interprets. The system then writes the option selects to the option latches. System information is kept in non-volatile RAM and is available to the system setup program at each power up time.
The POS feature in the PS/2 Model 70 not only facilitates the elimination of physical device switches from the system board and feature cards, but also permits installation of multiple identical feature cards, positively identifies any card by the slot in which it is installed, and resolves resource assignment conflicts.
As indicated hereinbefore, each card type is provided with a unique ID hardwired onto the card. The software-writeable latches, taking the form of a register in a preferred embodiment of the invention described in the incorporated reference, store parameter (configuration) data. This data may include, for example, an address factor (to programmably change the I/O address space of the card when required), priority data, status information and other system information providing for the efficient transfer of data between the system processor and the card (or between cards), all in addition to the POS ID which (as taught in the incorporated reference) serves as an address independent hardware identifier.
According to a preferred embodiment of the invention set forth in the incorporated reference, and support documentation accompanying IBM personal computing products having a Micro Channel architecture ("Micro Channel" is a registered trademark of the International Business Machines Corporation), each device (and associated feature card) which requires initialization to provide any specific function for such a system is uniquely identified by a two byte, hexadecimal POS ID number. Support code for automatic configuration and setup purposes in Micro Channel products is designed around the two byte ID convention.
The incorporated reference and the aforementioned support documentation teach that the POS ID number is utilized by configuration and setup programs to locate a given device's Adapter Description File (ADF). The ADF actually contains the specific configuration parameters associated with a given device. The POS ID is also taught as being suitable for use by diagnostic code to identify the type of a device under test.
With the introduction and use of processor complex cards, I/O risers to the system board (planar) complex, and with the introduction and use of secondary (daughter) cards and multiple adapter cards to provide more complex functions within computer systems, it would be desirable if the POS ID mechanism described in the incorporated patent application could be expanded to accommodate and identify multiple device combinations.
Preferably, unique two byte "combination type" IDs, for each type of multiple device combination, could be created so that the IDs remain compatible with existing system configuration and setup mechanisms (code) that utilize POS IDs to automate system configuration and setup. More generally, it would be desirable to generate n-byte wide combination type IDs where n is compatible with the underlying POS ID mechanism employed in a given system.
It would also be desirable to be able to provide the desired unique combination type IDs for multiple device combination possibilities in a given system without requiring the implementation of logic delays to determine what combinations exist.
Furthermore, it would be desirable to minimize the burden on deterministic code to locate, read and identify card combinations that are based on a one card per POS ID philosophy. Such a philosophy, particularly in view of the aforementioned introduction of processor complex cards, I/O risers to system board complexes, etc., would lead to a proliferation of POS IDs that quickly becomes difficult to manage and use.
Nevertheless, it would be desirable (for the aforementioned purpose of compatibility with existing systems) to apply the POS ID mechanism used for single cards to multi-card combinations. In particular, it would be desirable if the POS ID used for single cards (like a primary adapter card), could be somehow partitioned across multi-card combinations while keeping the ID at a predetermined width (for example, two bytes wide). Such an approach to device identification would allow a first ID value to be assigned to a given card (such as a primary adapter card); while a second, clearly distinguishable combination type, ID value could be assigned to a predefined combination of cards that includes the given card (such as a primary adapter card combined with a daughter card). The second ID value could, for example, become available to the system by somehow modifying the first ID in a predetermined fashion whenever the given card is combined with another card (or set of cards) to form the predefined combination.
Further yet, it would be desirable to provide apparatus for automatically "synthesizing", and making available to the system, the combination type POS ID value preassigned to a set of combined cards, when the value is first partitioned (effectively distributed) across the set of cards, after the cards have physically been combined. "Synthesizing" is defined herein as the taking of the portions of a predefined combination type POS ID that has partitioned across a set of cards and reformulating the ID from its constituent partitioned portions.